查看原文
其他

碳泽解读 | 为什么Go语言正在“接管”软件行业

上海碳泽信息 上海碳泽信息科技有限公司 2023-02-21
Stack Overflow在2021年推出了开发人员调查。如果当时你有关注技术头条新闻,会发JavaScript和Python连续占据了主导地位。但是,这些不是我关注的语言。   
名单上还有另一种语言引起了我的注意:Golang。    
它不是世界上最流行的编程语言。使用它的开发人员相对较少,这有一些很好的理由。   
Go是一种相对较新的语言。这是一种简单的语言,不像其他语言具有大量的语法糖。它没有任何流行的框架来自动化繁琐的样板。直到四年前,它才有标准化的软件包管理。    
毫不奇怪,更多的开发人员还没有使用它。    
尽管Go在受欢迎程度方面仅排名第12位,但它在开发人员想要学习的语言中却排名第三(这里排名TypeScript算在JavaScript类别中)。
HackerRank也支持这一点。根据他们从2020年开始的研究,Golang已经连续三年成为最需要学习的语言。注:HackerRank 成立于2012年,是一个面向程序员和黑客的社交网络,提供了各种编程谜题、游戏病毒和现实中的编程难题及挑战,让黑客们在该社区中进行交流讨论、接受挑战等。)
来自Hackerrank 2020的年调查
不仅如此,Go还是最受欢迎的十大语言之一,也是GitHub上最受欢迎的第三大明星语言。
    


01


         为什么Go语言越来越受欢迎呢?     

正如我之前提到的,Go仍然有很多问题。在当前的编程语言环境中,有更多的通用性和健壮性选项可供选择。那么,为什么Go会慢慢接管软件行业呢?
朴素的美
尽管Go有缺陷,但它有很多值得喜爱的地方。例如并发模型、丰富的第三方支持、命令行工具的健壮性等。但如果没有Go最好的特性:易用性,所有这些都将是徒劳的。
正如我之前提到的,Go是一种简单的语言。它的简单就是它的力量。它只有25个关键字,但每个都是通用的。
以关键字for为例。它是为循环和迭代保留的关键字。
它可以作为通用的for循环使用。
也可以作为while循环使用。
它可以用来迭代数组(array)或映射(map)。
Go是一种静态语言,传统上它更容易学习。特别是对于那些学习过Python或JavaScript等动态语言的人。     
但是Go从其充满活力的“弟兄”那里学习了很多优点。它支持(有限的)动态分配,是一种通过垃圾收集器进行内存管理的语言。将这一点与简洁的语法结合起来,就形成了一种易于学习和使用的语言。   
它的浅学习曲线是快速上手的最大动力之一。
跟着钱走(Follow the money)      
Follow the money这个因素也可以成为我们思考为什么开发人员喜欢Go语言的另一个原因。
    
根据HackerRank的研究,使用Go语言的开发人员胡平均工资相比增加了33%。不仅如此,10%的职位希望应聘者具有Go语言开发经验。开发人员有学习它的经济动机。    
需要指出的一点是,相关性并不意味着因果关系。仅仅因为你知道Go并不一定意味着你会赚更多的钱。但是,让我们来看看为什么存在这种相关性。       
Golang最初由谷歌开发,并于2009年发布,它已经慢慢但肯定地赢得了软件行业的信任。随着微服务架构的兴起,越来越多的大型科技公司采用了它。Uber、Twitch和Slack等公司都在自己的技术栈中使用了Go。即使是以采用和宣传单一架构而闻名的公司,如GitHub和Shopify也采用了这种架构。      
所有这些公司支付的薪水都是市场最高的,吸引了成千上万有抱负的软件工程师。过去,想要在这些技术巨头工作的开发人员需要学习Java、C或C++等语言。但老实说,大多数开发人员不喜欢每天使用这些语言。你只需要看看开发人员调查就知道了。
大多数开发人员害怕使用C、C++和Java——来源:StackOverflow调查
Go为那些想为大型科技公司工作,又不想受制于Java的工程师提供了另一种选择。      
但这仍然留下一个未解决的问题:为什么越来越多的公司开始选择Go语言?答案很简单。


02


Go是云的语言  

云计算改变了科技行业是一种轻描淡写。组织不再需要大量的服务器并雇用团队来维护它们。云提供商已将服务器变成了一种商品。      
云计算的兴起导致对技术的需求,这些技术可以帮助团队在云上管理和扩展其体系架构。于是,云原生诞生了。    
Terraform、Docker和Kubernetes等技术使微服务在云端部署、扩展和管理应用程序变得比以往任何时候都更容易。它们是Git背后最流行的开发工具。它们都是用Go打造的。    
不仅仅是Docker和Kubernetes。绝大多数云原生计算基金会(CNCF)赞助的项目都是用Go开发的。     
Go是为云和微服务构建的。它是为多核服务器设计的。它可以轻松地交叉编译成各种体系架构和操作系统,并且它是轻量级的。它编译的二进制文件比Java中的类似文件小10倍。它们不仅更小,而且编译速度也更快。     
Kubernetes有超过500万行的应用程序代码。如果用其他语言编写,编译可能需要几十分钟到几个小时。用Go,只需要一两分钟。
根据谷歌关于云原生架构的5条原则:“几乎所有云架构都基于微服务架构”。随着60%的组织已将其工作负载移至云中,越来越多的组织开始依赖Go——无论他们是否直接使用Go。


03


结语

目前尚不能确定Go是否会比JavaScript、Python或Java更受欢迎。但这不是必须的。编程语言不是赢家通吃的市场。   
Go解决了一个关键需求。一种既能提供静态语言的速度、安全性和可扩展性,又能提供动态语言的易用性的语言。它还开辟了一个重要的细分市场。     
每种语言都有其独特之处。如果说JavaScript拥有web前端,Python拥有数据科学,Java拥有企业应用,那么Go拥有云。     
尽管只有十年的历史,但Golang已经取得了成就。随着云计算主导地位的扩大,Go的未来看起来比以往任何时候都更加光明。 
因此,网络安全从业者们也更需要了解和熟悉Go语言。
如果你是一名想学习Go语言的网络安全从业者或者是想入行网络安全的Go语言开发人员,这里可以给大家推荐一本书《Go黑帽子 渗透测试编程之道》,本书从安全从业人员和黑客的角度出发,带学习者全面了解Go 编程语言。同时,它也提供了一系列实用的策略,以帮助你使用Go的功能来测试系统、构建和自动化工具以满足你的需求,并提高你的进攻性安全技能。

  

Go 黑帽子 

渗透测试编程之道

  清华大学出版社

    2021-09-01


https://item.jd.com/13443844.html



End

碳泽信息

  新一代智能安全运营平台

电话:400-1788-258

销售咨询:sales@tanze.net.cn

技术支持:support@tanze.net.cn

官网:http://www.tanze.net.cn

碳泽解读 | 安全编排、自动化和响应 (SOAR) 产品初学者指南

2022-04-21

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存